export const minWindowWidth = 35 // 窗口最小宽度
export const minWindowHeight = 35 // 窗口最小高度

export interface BaseWindow {
  id?: number
  category: string
  /** 窗口容器尺寸，非窗口尺寸 */
  rect?: DOMRect
  /** 布局 */
  parent?: Layout
  /** 在所在布局中的序数 */
  index?: number
  /** 绝对位置 */
  top?: number
  /** 绝对位置 */
  bottom?: number
  /** 绝对位置 */
  left?: number
  /** 绝对位置 */
  right?: number
}

export interface Layout {
  id?: number
  /** 布局朝向 */
  flow: 'Horizontal' | 'Vertical'
  /** 分隔百分比。在调整窗口大小时会用到 */
  separator: Array<number>
  /** 窗口容器尺寸，非布局尺寸 */
  rect?: DOMRect
  /** 布局或窗口数组 */
  children: Array<Layout | BaseWindow>
  /** 父布局 */
  parent?: Layout
  /** 在所在布局中的序数 */
  index?: number
  /** 绝对位置 */
  top?: number
  /** 绝对位置（如果在最下面，则不是0） */
  bottom?: number
  /** 绝对位置 */
  left?: number
  /** 绝对位置 */
  right?: number
}
